package com.briup.corejava.day18;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.Arrays;

/**
 * File类的使用
 * 1、创建
 * 2、方法
 */
public class Test2 {
    public static void main(String[] args) {
        // 定义一个桌面的file对象
        File file = new File("/Users/mastercgx/Desktop");
        // 定义一个桌面上的文本文档
        File f1 = new File(file,"a.txt");
        // 信息的获取
        System.out.println("file : " + file.exists());
        System.out.println("是否是目录："+file.isDirectory());
        System.out.println("是否是文件："+file.isFile());
        // 文件属性的获取
        System.out.println("file的绝对路径：" + file.getAbsolutePath());
        System.out.println("file的构造路径：" + file.getPath());
        System.out.println("file.getName() = " + file.getName());
        System.out.println("f1.length() = " + f1.length());
        // 当f1不存在的时候
        if(!f1.exists()){
            try {
                System.out.println("f1创建成功了吗？" + f1.createNewFile());
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
        // 创建文件夹，需要给新的文件对象
        File f2 = new File(file,"aaa");
        f2.mkdir();
        File f3 = new File(file,"bbb/ccc");
        f3.mkdirs();
        if(f3.exists()){
            f3.delete();
        }
        // 遍历桌面
        // 获得所有子元素的名字
        String[] list = file.list();
        System.out.println(Arrays.toString(list));
        // 获得所有子文件对象
        File[] files = file.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return pathname.isFile();
            }
        });
        for (File ff:files){
            System.out.println(ff);
        }
    }
}
